import Vue from 'vue'

import 'normalize.css/normalize.css' // A modern alternative to CSS resets

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import locale from 'element-ui/lib/locale/lang/en' // lang i18n

import '@/styles/index.scss' // global css

import App from './App'
import store from './store'
import router from './router'

import i18n from './lang'

import '@/icons' // icon
import '@/permission' // permission control

Vue.directive('arrow', {
  inserted(el, binding) {
    // console.log(1111)
    // 通过自定义指令显示excel文件导出按钮是否显示
    //  通过传过来的showBtn，然后再points数组中查找，如果有就表示按钮有权限，没有就不显示按钮，没有权限

    // setTimeout(() => {
    var points = store.state.user.userInfo.roles.points
    var flag = points.includes(binding.value)
    if (!flag) {
      // 不显示====需要将按钮移除===不能自杀，需要父节点移除自己
      el.parentNode.removeChild(el)
    }
    // }, 1000)
  }
})

// 全局注册组件
// import PageTools from '@/components/PageTools'
// Vue.component('PageTools', PageTools)

// import '@/components'

import pluginCom from '@/components'
Vue.use(pluginCom)

// 过滤器
// Vue.filter(过滤器的名称,处理函数)
// console.log(data, 88)
// data就是  scoped.row.timeOfEntry
/*  padStart() 方法用另一个字符串填充当前字符串(如果需要的话，会重复多次)，以便产生的字符串达到给定的长度。从当前字符串的左侧开始填充。 */
// Vue.filter('forMat', (data) => {
//   var t = new Date(data)
//   var yy = t.getFullYear()
//   var mm = (t.getMonth() + 1).toString().padStart(2, 0)
//   var dd = t.getDate().toString().padStart(2, 0)
//   return `${yy}-${mm}-${dd}`
// })
import dayjs from 'dayjs'
Vue.filter('forMat', (data, p1) => {
  return dayjs(data).format(p1)
})

/**
 * If you don't want to use mock-server
 * you want to use MockJs for mock api
 * you can execute: mockXHR()
 *
 * Currently MockJs will be used in the production environment,
 * please remove it before going online ! ! !
 */
// if (process.env.NODE_ENV === 'production') {
//   const { mockXHR } = require('../mock')
//   mockXHR()
// }

// set ElementUI lang to EN
Vue.use(ElementUI, { locale })
// 如果想要中文版 element-ui，按如下方式声明
// Vue.use(ElementUI)

Vue.config.productionTip = false

new Vue({
  el: '#app',
  router,
  store,
  i18n: i18n,
  render: h => h(App)
})
